# -*- coding: utf-8 -*-

#    OriginDB
#    Copyright (C) 2010  Jason Power <power.jg@gmail.com>
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License along
#    with this program; if not, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

from PyQt4 import QtCore
from PyQt4.QtGui import *

import os

import pybel

from ui_libraryDialog import Ui_LibraryDialog

class LibraryDialog(QDialog):
	def __init__(self, editScene, parent=None):
		QMainWindow.__init__(self, parent)

		self.editScene = editScene

		self.ui = Ui_LibraryDialog()
		self.ui.setupUi(self)

		self.files = {}
		for t in os.walk("library"):
			for f in t[2]:
				if f.endswith(".cml") or f.endswith(".sdf"):
					name = f[:f.find('.')]
					self.files[name] = os.path.join(t[0], f)
					self.ui.listWidget.addItem(name)

		self.connect(self.ui.buttonBox, QtCore.SIGNAL("rejected()"), self.close)
		self.connect(self.ui.buttonBox, QtCore.SIGNAL("accepted()"), self.returnCompound)


	def returnCompound(self):
		name = self.ui.listWidget.currentItem()
		f = self.files[str(name.text())]
		m = pybel.readfile(f[-3:], f).next()
		self.editScene.addMolecule(m.OBMol)
